import { defineStore } from "pinia";

/* defineStore第一个参数为这个状态库的名称 */
export const useCounterStore = defineStore('count', {
    /* 创建state */
    state: () => ({
        cartList: []
    }),
    /* 计算参数缓存数据 */
    getters: {

    },
    /* 同步异步的方法都写到这里 */
    actions: {
        getCartList() {
            return this.cartList
        },
        removeCake(cake) {
            this.cartList.forEach((item,index) => {
                if(item.id === cake.id){
                    this.cartList.splice(index,1);
                }
            });
        },
        addCart(cake) {
            // 库存小于1的蛋糕 不能加入购物车
            if (cake.store < 1) {
                return
            }
            // 第一次直接加到购物车
            if (this.cartList.length == 0) {
                this.cartList.push(cake)
            } else {
            // 第二次购物车有该商品就加购物车数量 
                const isCake = this.cartList.find(item => item.id == cake.id)
                if (isCake) {
                    this.cartList.forEach(item2=>{
                        if(item2.id == cake.id && item2.wantNum < item2.store ){
                            item2.wantNum ++
                        }
                    })
                } else {
                    this.cartList.push(cake)
                }
            }
        }
    },
    //   开启缓存 默认存session
    persist: {
        enabled: true,
        // 存localstorage
        strategies: [{
            key: 'my_cart',
            storage: localStorage
        }]
    }

})